<!DOCTYPE HTML>
<html lang="en">
<head>
<title>IsSet() | AutoHotkey</title>
<meta name="description" content="The IsSet function return a non-zero number if the specified variable has been assigned a value." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
</head>
<body>

<h1>IsSet() <span class="ver">[v1.1.35+]</span></h1>

<p>如果指定变量已经被赋值, 则返回一个非零数字.</p>

<pre class="Syntax">VarIsSet := <span class="func">IsSet</span>(Var)</pre>
<h2 id="Parameters">参数</h2>
<dl>

  <dt>Var</dt>
  <dd>
    <p>直接或动态变量引用. 例如: <code>IsSet(MyVar)</code> 或 <code>IsSet(%VarContainingName%)</code>.</p>
  </dd>

</dl>

<h2 id="Return_Value">返回值</h2>
<p>如果 <em>Var</em> 已经被赋值, 则返回值为 1(true), 否则为 0(false).</p>

<h2 id="Remarks">备注</h2>
<p>未赋值的变量也称为<a href="../Concepts.htm#uninitialised-variables">未初始化变量</a>.</p>
<p>此函数受到 AutoHotkey v1.1 的以下技术限制的影响:</p>
<ul>
  <li>当 MsgBox 模式启用 <a href="_Warn.htm#UseUnset">#Warn UseUnset</a> 时, 试图读取变量会导致变量被标记为初始化, 以确保每个变量只显示一次消息. 后续对 IsSet 的调用将返回 1.</li>
  <li>动态调用时, IsSet 无法识别内置变量. 不建议动态调用 IsSet.</li>
</ul>

<h2 id="Related">相关</h2>
<p><a href="../Functions.htm#ByRef">ByRef 参数</a></p>
<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a class="ex_number" href="#ExBasic"></a> 展示 IsSet 的不同用法.</p>
<pre>
Loop 2
    if !IsSet(MyVar)  <em>; 是否是第一次 "使用" MyVar?</em>
        MyVar := A_Index  <em>; 第一次 "使用" 时进行初始化.</em>
MsgBox % "MyVar is " (IsSet(MyVar) ? "set and has value """ MyVar """" : "unset")
</pre>
</div>

</body>
</html>